package chapter12.section3;
/*程序12-4b：改进后的一个多线程服务器程序*/
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class EBanlServer2 {
	public static void main(String[] args) throws IOException {
		ServerSocket serverSocket = null; // 声明一个服务器套接字提供监听服务
		try {
			// 注册服务，申请在指定端口7788提供服务
			serverSocket = new ServerSocket(7788);
			System.err.println("服务器开始运行...");
		} catch (IOException e) {
			System.err.println("无法在 7788端口上提供连接侦听服务.");
			System.exit(1);// 程序退出运行
		}
		// 以下是端口申请成功后，程序开始服务
		Socket clientSocket = null;// 声明一个对应于特定客户端的socket对象变量
		boolean working=true;
		while(working){
			try {
				clientSocket = serverSocket.accept();
				Processor p=new Processor(clientSocket);
				p.start();
			} catch (IOException e) {
				System.err.println("建立和客户端的连接时失败.");
				System.exit(1);
			}
		}
		serverSocket.close();// 关闭监听服务
	}
}